#include "calendar.h"
#include <QtGui>
#include <QFile>
#include <QTextCodec>
Calendar::Calendar()
{
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    selectedDate = QDate::currentDate();
    QWidget *centralWidget = new QWidget;
    cur_week = selectedDate.weekNumber();
    editor = new QTextBrowser();
    // Считывание из файла
    QFile file("db.ini");
    if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
         editor->insertPlainText(tr("Отсутствует файл базы данных"));
    QTextStream filein(&file);
    QString line = filein.readLine();
    QList<QString> list2 = line.split(" ", QString::SkipEmptyParts);
    int mf,yf,df;
    df = list2[0].toInt(&ok,10); // день начал обучения
    mf = list2[1].toInt(&ok,10); // месяц начала обучения
    yf = list2[2].toInt(&ok,10); // год начала обучения
    firstDate = QDate(yf,mf,df);
    i=0;
    while (!filein.atEnd()) { // заполняем таблицу расписания
         line = filein.readLine();
         list2 = line.split(" ", QString::SkipEmptyParts);
         tableweek.append(list2[0]);
         tableday.append(list2[1]);
         tablenum.append(list2[2]);
         tablename.append(list2[3]);
         i++;
     }
    file.close();
    // Окончание считывания из файла
    //Определеляем номер текущей недели и назначаем события
    cur_week = selectedDate.weekNumber()-firstDate.weekNumber()+1;
    raspisanie(selectedDate);
    //Календарь
    monthcalendar = new QCalendarWidget;
    monthcalendar->setFirstDayOfWeek(Qt::Monday);
    connect(monthcalendar, SIGNAL(clicked(QDate)), this, SLOT(setCurrDay(QDate)));

// Выстраивание на форме
    QVBoxLayout *centralLayout = new QVBoxLayout;
    centralLayout->addWidget(monthcalendar);
    centralLayout->addWidget(editor,1);
    centralWidget->setLayout(centralLayout);
    setCentralWidget(centralWidget);
// Окончание выстраивания
}
void Calendar::setCurrDay(QDate date)
{
    selectedDate = QDate(date.year(),date.month(),date.day());
    raspisanie(date);
}
void Calendar::raspisanie(QDate date)
{
    editor->clear();
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    cur_week = selectedDate.weekNumber()-firstDate.weekNumber()+1;
    int fl=0;
    for (int s=0; s<i; s++)
    {
        if (cur_week==tableweek[s].toInt(&ok,10)&&
            selectedDate.dayOfWeek()==tableday[s].toInt(&ok,10))
        {
            editor->insertPlainText(tr("%1 . %2\n").arg(tablenum[s],
                                                          tablename[s]));
            fl=1;
        }
    }
    if (fl==0)
        editor->insertPlainText(tr("На этот день занятий нет =)\n"));
}
